There has been substantial growth in the purchase of information technology as a service from internal and external service providers and this trend appears to be increasing rapidly. This growth is enabled by the trend towards cloud computing, in which, services run on shared virtualized resource pools that are accessible via Intranets or the Internet. As this cloud computing paradigm matures, there is also an increasing trend for businesses to exploit the paradigm to support business critical services such as sales and delivery, and supply chain management. Those services will have performance requirements and are likely to place significant loads on cloud infrastructures.
With the increasing loads currently being placed on cloud computing infrastructures, it is becoming increasingly important to create systems configured to accurately model the workloads imposed upon the systems contained in the cloud computing infrastructures. One modeling method utilizes benchmarks to impose a synthetic workload on the cloud computing infrastructures being tested. The use of benchmarks facilitates the management of the enterprise application system in areas such as capacity planning and service level performance.
A typical business process, for instance, ordering, may in turn invoke a number of discreet business objects in order to complete the business process. In addition, a given business object may be characterized by a particular sequence of interdependent requests which are exchanged between entities in the enterprise application system. In other words, the sequence of interdependent requests should be performed correctly in order to correctly implement the business process. Thus, a benchmark for modeling the enterprise application system should accurately reflect the correct sequence and volume of interdependent requests. Otherwise, an incorrect sequence of interdependent requests may cause an error condition that does not accurately model the demands placed upon the enterprise application system.
However, conventional stress testing of enterprise application systems is based upon a small number of pre-existing benchmarks which typically utilize a small subset of business objects. As a result, it is difficult to generate a synthetic workload that accurately models the actual request patterns expected at the enterprise application system. Alternatively, creating a customized benchmark that is representative of a given enterprise is typically too time consuming and expensive for many users.
In addition, conventional stress testing procedures generally require users to have a high level of skill to be able to understand how to size and tune the enterprise application systems to accurately model the actual request patterns. Moreover, manually studying the test results and selecting which change to make to an enterprise application system, to enact that change, and to generate new measurement results and repeating that process until a suitable configuration is determined, is typically too time consuming and complicated for users to perform. In addition to the time required to perform these tests, the tests are likely to also require a large amount of power and other resources, such as, bandwidth and network utilization.
It would thus be beneficial to be able to automatically size a system without suffering from all of the drawbacks and disadvantages of conventional sizing methods.